package cn.com.dcsgo.service;

import cn.com.dcsgo.common.PageInfo;
import cn.com.dcsgo.domain.dto.SysDictTypeQueryDTO;
import cn.com.dcsgo.domain.dto.SysDictTypeSaveDTO;
import cn.com.dcsgo.domain.dto.SysDictTypeUpdateDTO;
import cn.com.dcsgo.domain.po.SysDictType;

/**
 * SysDictTypeService
 *
 * @author Dcsgo
 * @since 23/5/2025 上午 9:07
 */

public interface SysDictTypeService {
    /**
     * 分页条件查询字典类型
     *
     * @param pageInfo 分页条件查询参数
     * @return 分页条件查询结果
     */
    PageInfo<SysDictType, SysDictTypeQueryDTO> page(PageInfo<SysDictType, SysDictTypeQueryDTO> pageInfo);

    /**
     * 添加字典类型
     *
     * @param sysDictTypeSaveDTO 添加字典类型信息
     * @return 受影响的行数
     */
    int save(SysDictTypeSaveDTO sysDictTypeSaveDTO);

    /**
     * 根据字典id修改字典类型信息
     *
     * @param sysDictTypeUpdateDTO 要修改的信息
     * @return 受影响的行数
     */
    int updateById(SysDictTypeUpdateDTO sysDictTypeUpdateDTO);

    /**
     * 根据字典id删除字典类型及其关联的字典数据
     *
     * @param dictId 字典id
     * @return 受影响的行数
     */
    int remove(Long dictId);

    /**
     * 根据字典编号获取字典类型
     *
     * @param dictId 字典编号
     * @return dictId对应的字典类型, 不存在返回 null
     */
    SysDictType getDictTypeByDictId(Long dictId);
}
